package com.tang.param_check.common.login;

import com.tang.param_check.common.delegate.Handler;
import com.tang.param_check.domain.LoginDTO;
import lombok.extern.slf4j.Slf4j;

/**
 * @Author tangyuan2meicloud.com
 * @DATE 2022/1/15 20:24
 * @Desc
 * @Remarks
 */
@Slf4j
public abstract class AbstractLoginHandler implements Handler<String, LoginDTO> {

    @Override
    public String handler(LoginDTO parameter) {
        parameter = beforeExecute(parameter);
        String result = execute(parameter);
        return postExecute(result);
    }

    protected String postExecute(String result) {
        log.info("前置处理！结果：result：{}", result);
        return result;
    }

    protected abstract String execute(LoginDTO parameter);

    protected LoginDTO beforeExecute(LoginDTO parameter) {
        log.info("前置处理！参数：parameter：{}", parameter);
        return parameter;
    }
}
